package m202401.d02;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
 * @@author: 爱做梦的锤子
 * @date: 2024/1/2 09:59
 */
//128. 最长连续序列
public class Q128 {

    public static void main(String[] args) {
        int i = new Q128().longestConsecutive(new int[]{100, 4, 200, 1, 3, 2});
        System.out.println(i);
    }

    public int longestConsecutive(int[] nums) {
        Set<Integer> set = new HashSet<>();
        for (int num : nums) {
            set.add(num);
        }
        int max = 0;
        for (Integer integer : set) {
            int cp1 = 0;
            if (set.contains(integer - 1)) {
                continue;
            }
            Integer p1 = integer + 1;
            while (set.contains(p1)) {
                cp1++;
                p1++;
            }
            max = Math.max(max, cp1 + 1);
        }
        return max;
    }

//    public int longestConsecutive(int[] nums) {
//        Set<Integer> set = new HashSet<>();
//        for (int num : nums) {
//            set.add(num);
//        }
//        int max = 0;
//        Integer[] array = set.toArray(new Integer[0]);
//        for (Integer integer : array) {
//            int cp1 = 0;
//            Integer p1 = integer + 1;
//            while (set.contains(p1)) {
//                set.remove(p1);
//                cp1++;
//                p1++;
//            }
//            int cp2 = 0;
//            Integer p2 = integer - 1;
//            while (set.contains(p2)) {
//                set.remove(p2);
//                cp2++;
//                p2--;
//            }
//            set.remove(integer);
//            max = Math.max(max, cp1 + cp2 + 1);
//        }
//        return max;
//    }
}
